home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1996-04-23 | 5.7 KB | 228 lines |
- 10 'EQUIV - 09 SEP 92 rev. 24 APR 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 IF PROG$=""THEN PROG$=EX$
- 40 COMMON EX$,PROG$
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 DIM X(20)
- 80 DIM U$(20)
- 90 UL$=STRING$(80,205)
- 100 ER$=STRING$(80,32)
- 110 L$=STRING$(80,223)
- 120 PI=3.14159
- 130 '
- 140 '.....start
- 150 CLS
- 160 COLOR 15,2
- 170 PRINT " EQUIVALENTS";TAB(57);"by George Murphy VE3ERP ";
- 180 COLOR 1,0:PRINT STRING$(80,223);
- 190 COLOR 7,0
- 200 PRINT " Press number in < > to determine equivalent values of:"
- 210 PRINT UL$;
- 220 PRINT " < 1 > Capacitance"
- 230 PRINT " < 2 > Current"
- 240 PRINT " < 3 > Degrees / Radians"
- 250 PRINT " < 4 > Degrees / Minutes / Seconds"
- 260 PRINT " < 5 > Frequencies/Wavelengths"
- 270 PRINT " < 6 > Length / Distance"
- 280 PRINT " < 7 > Resistance"
- 290 PRINT " < 8 > Temperature"
- 300 PRINT " < 9 > Time"
- 310 PRINT UL$;
- 320 PRINT " < 0 > EXIT program
- 330 Y$=INKEY$:IF Y$=""THEN 330
- 340 IF Y$="0"THEN CLS:CHAIN PROG$
- 350 IF Y$="1"THEN 850
- 360 IF Y$="2"THEN 940
- 370 IF Y$="3"THEN 1950
- 380 IF Y$="4"THEN 1360
- 390 IF Y$="5"THEN 1030
- 400 IF Y$="6"THEN 1140
- 410 IF Y$="7"THEN 1270
- 420 IF Y$="8"THEN 2100
- 430 IF Y$="9"THEN 1830
- 440 GOTO 330
- 450 '
- 460 '.....screen display
- 470 CLS
- 480 COLOR 1,1:PRINT ER$;:LOCATE CSRLIN-1
- 490 COLOR 15,1:PRINT " EQUIVALENT ";T$;" "
- 500 COLOR 1,0:PRINT L$;
- 510 COLOR 7,0
- 520 PRINT " Press number in < > to select base unit:
- 530 PRINT UL$;
- 540 FOR Z=1 TO N
- 550 PRINT " (";Z;") ";U$(Z)
- 560 NEXT Z
- 570 Z$=INKEY$:IF U$(VAL(Z$))=""THEN 570 ELSE 590
- 580 GOTO 570
- 590 LOCATE 3:PRINT ER$;:LOCATE 3
- 600 IF Y$="4"THEN 1430
- 610 PRINT " ENTER: How many ";U$(VAL(Z$));:INPUT Q#
- 620 LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1
- 630 PRINT USING "########,###.###";Q#;:PRINT " ";U$(VAL(Z$))+" ="
- 640 IF Y$="8"THEN 2180
- 650 Y#=Q#/X(VAL(Z$))
- 660 IF Y$="7"THEN 2020
- 670 IF X(VAL(Z$))=999 THEN Y#=3E+08/Q# 'frequency/wavelength only
- 680 FOR Z=1 TO N:J#=Y#*X(Z)
- 690 IF X(Z)=999 THEN J#=300000/(Y#/1000) 'frequency/wavelength ony
- 700 K#=INT(J#*10^2+0.5)/10^2:U$="##,###.##":TOL$=".01"
- 710 IF Y$="3"OR Y$="4"THEN K#=INT(J#*10^3+0.5)/10^3:U$="##,###.###":TOL$=".001"
- 720 IF Y$="1"THEN K#=INT(J#*10^4+0.5)/10^4:U$="##,###.####":TOL$=".0001"
- 730 LOCATE 4+Z,34:PRINT " = ";
- 740 IF K#<VAL(TOL$) THEN PRINT " - less than ";TOL$:GOTO 770
- 750 IF K#>=10^5 THEN PRINT " - more than 99,999.999":GOTO 770
- 760 PRINT USING U$;K#
- 770 NEXT Z
- 780 PRINT UL$;
- 790 PRINT TAB(14);"Values shown are rounded off to the nearest ";TOL$
- 800 PRINT
- 810 PRINT TAB(22);"Press any key to continue............"
- 820 IF INKEY$=""THEN 820
- 830 GOTO 140 'start
- 840 '
- 850 '.....Capacitance
- 860 CLS
- 870 T$="CAPACITANCES"
- 880 U$(1)="Farads..............(F)":X(1)=1
- 890 U$(2)="Microfarads........(>F)":X(2)=10^6
- 900 U$(3)="Picofarads.........(pF)":X(3)=10^12
- 910 N=3
- 920 GOTO 460
- 930 '
- 940 '.....Current
- 950 CLS
- 960 T$="CURRENTS"
- 970 U$(1)="Amperes.............(A)":X(1)=1
- 980 U$(2)="Milliamperes.......(mA)":X(2)=10^3
- 990 U$(3)="Microamperes.......(>A)":X(3)=10^6
- 1000 N=3
- 1010 GOTO 460
- 1020 '
- 1030 '.....Frequency
- 1040 CLS
- 1050 T$="FREQUENCIES/WAVELENGTHS"
- 1060 U$(1)="Herz...............(Hz)":X(1)=1
- 1070 U$(2)="Kiloherz..........(kHz)":X(2)=10^-3
- 1080 U$(3)="Megaherz..........(MHz)":X(3)=10^-6
- 1090 U$(4)="Gigaherz..........(GHz)":X(4)=10^-9
- 1100 U$(5)="Wavelength (metres)....":X(5)=999
- 1110 N=5
- 1120 GOTO 460
- 1130 '
- 1140 '.....Lengths/Distances
- 1150 CLS
- 1160 T$="LENGTHS/DISTANCES
- 1170 U$(1)="Millimetres........(mm)":X(1)=10^3
- 1180 U$(2)="Centimeters........(cm)":X(2)=10^2
- 1190 U$(3)="Metres..............(m)":X(3)=1
- 1200 U$(4)="Kilometres.........(km)":X(4)=0.000999999
- 1210 U$(5)="Inches.............(in)":X(5)=39.37
- 1220 U$(6)="Feet...............(ft)":X(6)=39.37/12
- 1230 U$(7)="Miles..............(mi)":X(7)=39.37/12/5280
- 1240 N=7
- 1250 GOSUB 460
- 1260 '
- 1270 '.....Resistance
- 1280 CLS
- 1290 T$="RESISTANCES"
- 1300 U$(1)="Ohms................(-)":X(1)=1
- 1310 U$(2)="Kilohm.............(k-)":X(2)=10^-3
- 1320 U$(3)="Megohm.............(M-)":X(3)=10^-6
- 1330 N=3
- 1340 GOTO 460
- 1350 '
- 1360 '.....Degrees/Minutes/Seconds
- 1370 CLS
- 1380 T$="DEGREES/MINUTES/SECONDS"
- 1390 U$(1)="Decimal degrees"
- 1400 U$(2)="Degrees/Minutes/Seconds"
- 1410 N=2
- 1420 GOTO 460
- 1430 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 13
- 1440 T=7
- 1450 PRINT TAB(T);
- 1460 PRINT "Calculated values are to the nearest .001 degree and nearest second"
- 1470 PRINT TAB(T);
- 1480 PRINT "of angle. 0.001<UNK! {00F8}> of latitude = approximately 100m.(350 ft.) and one"
- 1490 PRINT TAB(T);
- 1500 PRINT "second (1";CHR$(34);") of angle = approx. 30m.(100ft.).
- 1510 LOCATE 3
- 1520 IF Z$="2"THEN 1670
- 1530 INPUT " ENTER: Decimal degrees ";D
- 1540 LOCATE CSRLIN-1:PRINT ER$;:LOCATE 4
- 1550 D1=INT(D) 'degrees
- 1560 D2=(D-D1)*60 'minutes
- 1570 D3=(D2-INT(D2))*60 'seconds
- 1580 D2=INT(D2)
- 1590 D3=INT(D3+0.5)
- 1600 IF D3=60 THEN D2=D2+1:D3=0
- 1610 IF D2=60 THEN D1=D1+1:D2=0
- 1620 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1630 PRINT D;"<UNK! {00F8}> =";STR$(D1);"<UNK! {00F8}>";STR$(D2);"'";STR$(D3);CHR$(34)
- 1640 TOL$="second of angle"
- 1650 GOTO 1800
- 1660 '
- 1670 PRINT " Enter Degrees, Minutes and Seconds as three separate entities:"
- 1680 PRINT
- 1690 INPUT " ENTER: Whole degrees......";D
- 1700 IF D<>INT(D)THEN LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:BEEP:GOTO 1690
- 1710 INPUT " ENTER: Whole minutes......";M
- 1720 IF M<>INT(M)THEN LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:BEEP:GOTO 1710
- 1730 INPUT " ENTER: Seconds............";S
- 1740 D1=D+M/60+S/3600
- 1750 D$=STR$(D)+"<UNK! {00F8}>"+STR$(M)+"'"+STR$(S)+CHR$(34)
- 1760 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 4
- 1770 PRINT D$;" =";USING "####.###";D1;:PRINT "<UNK! {00F8}>"
- 1780 TOL$=".001<UNK! {00F8}>"
- 1790 '
- 1800 PRINT
- 1810 GOTO 780
- 1820 '
- 1830 '.....Time
- 1840 CLS
- 1850 T$="TIMES"
- 1860 U$(1)="Seconds................":X(1)=1
- 1870 U$(2)="Minutes................":X(2)=1/60
- 1880 U$(3)="Hours..................":X(3)=1/3600
- 1890 U$(4)="Days...................":X(4)=1/86400
- 1900 U$(5)="Weeks..................":X(5)=1/604800
- 1910 U$(6)="Years (365.25 day).....":X(6)=1/3.15576E+07
- 1920 N=6
- 1930 GOTO 460
- 1940 '
- 1950 '.....Degrees / Radians
- 1960 CLS
- 1970 T$="DEGREES / RADIANS"
- 1980 U$(1)="Degrees................":X(1)=180/PI
- 1990 U$(2)="Radians................":X(2)=PI/180
- 2000 N=2
- 2010 GOTO 460
- 2020 '.....print
- 2030 LOCATE 5,2
- 2040 A=1:B=2:IF Q#<Y# THEN SWAP A,B
- 2050 PRINT U$(A);USING "####.####";Q#
- 2060 LOCATE 6,2
- 2070 PRINT U$(B);USING "####.####";Y#
- 2080 TOL$=".0001":GOTO 780
- 2090 '
- 2100 '.....temperature
- 2110 CLS
- 2120 T$="TEMPERATURE"
- 2130 U$(1)="Degrees Fahrenheit....."
- 2140 U$(2)="Degrees Celsius........"
- 2150 N=2
- 2160 GOTO 460
- 2170 '
- 2180 '.....print
- 2190 IF Z$="1"THEN Y#=(Q#-32)/1.8
- 2200 IF Z$="2"THEN Y#=1.8*Q#+32
- 2210 LOCATE 5,2
- 2220 A=1:B=2:IF Q#<Y# THEN SWAP A,B
- 2230 PRINT U$(A);USING "######.#";Q#
- 2240 LOCATE 6,2
- 2250 PRINT U$(B);USING "######.#";Y#
- 2260 PRINT UL$;
- 2270 GOTO 800
-